/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 2002-2006
* Sleepycat Software. All rights reserved.
*
* $Id: LoggableObject.java,v 1.1 2006/05/06 09:00:00 ckaestne Exp $
*/
package com.sleepycat.je.log;
import com.sleepycat.je.DatabaseException;
/**
* A class that implements LoggableObject can be stored as a JE log entry.
*/
public interface LoggableObject extends LogWritable {
/**
* All objects that are reponsible for a generating a type of log entry
* must implement this.
* @return the type of log entry
*/
public LogEntryType getLogType();
/**
* Do any processing we need to do after logging, while under the logging
* latch.
*/
public void postLogWork(long justLoggedLsn)
throws DatabaseException;
/**
* Return true if this item can be marshalled outside the log write
* latch.
*/
public boolean marshallOutsideWriteLatch();
/**
* Returns true if this item should be counted as obsoleted when logged.
* This currently applies to deleted LNs only.
*/
public boolean countAsObsoleteWhenLogged();
}